package only.my.railgunys.bean.db;

import only.my.railgunys.bean.PossibleFinalFormDto;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document
public class PossibleFinalForm {
    @Id
    public String id;
    int embryo;
    int level;
    int suit;
    double percentATK;
    double percentHP;
    double percentDEF;
    double flatHP;
    double flatATK;
    double flatDEF;
    double elementalMastery;
    double energyRecharge;
    double critRate;
    double critDamage;
    double physicalDamage;
    double hydroDamage;
    double pyroDamage;
    double cryoDamage;
    double geoDamage;
    double electroDamage;
    double anemoDamage;
    double dendroDamage;
    double healing;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public int getEmbryo() {
        return embryo;
    }

    public void setEmbryo(int embryo) {
        this.embryo = embryo;
    }

    public int getLevel() {
        return level;
    }

    public void setLevel(int level) {
        this.level = level;
    }

    public double getPercentATK() {
        return percentATK;
    }

    public int getSuit() {
        return suit;
    }

    public void setSuit(int suit) {
        this.suit = suit;
    }

    public void setPercentATK(double percentATK) {
        this.percentATK = percentATK;
    }

    public double getPercentHP() {
        return percentHP;
    }

    public void setPercentHP(double percentHP) {
        this.percentHP = percentHP;
    }

    public double getPercentDEF() {
        return percentDEF;
    }

    public void setPercentDEF(double percentDEF) {
        this.percentDEF = percentDEF;
    }

    public double getFlatHP() {
        return flatHP;
    }

    public void setFlatHP(double flatHP) {
        this.flatHP = flatHP;
    }

    public double getFlatATK() {
        return flatATK;
    }

    public void setFlatATK(double flatATK) {
        this.flatATK = flatATK;
    }

    public double getFlatDEF() {
        return flatDEF;
    }

    public void setFlatDEF(double flatDEF) {
        this.flatDEF = flatDEF;
    }

    public double getElementalMastery() {
        return elementalMastery;
    }

    public void setElementalMastery(double elementalMastery) {
        this.elementalMastery = elementalMastery;
    }

    public double getEnergyRecharge() {
        return energyRecharge;
    }

    public void setEnergyRecharge(double energyRecharge) {
        this.energyRecharge = energyRecharge;
    }

    public double getCritRate() {
        return critRate;
    }

    public void setCritRate(double critRate) {
        this.critRate = critRate;
    }

    public double getCritDamage() {
        return critDamage;
    }

    public void setCritDamage(double critDamage) {
        this.critDamage = critDamage;
    }

    public double getPhysicalDamage() {
        return physicalDamage;
    }

    public void setPhysicalDamage(double physicalDamage) {
        this.physicalDamage = physicalDamage;
    }

    public double getHydroDamage() {
        return hydroDamage;
    }

    public void setHydroDamage(double hydroDamage) {
        this.hydroDamage = hydroDamage;
    }

    public double getPyroDamage() {
        return pyroDamage;
    }

    public void setPyroDamage(double pyroDamage) {
        this.pyroDamage = pyroDamage;
    }

    public double getCryoDamage() {
        return cryoDamage;
    }

    public void setCryoDamage(double cryoDamage) {
        this.cryoDamage = cryoDamage;
    }

    public double getGeoDamage() {
        return geoDamage;
    }

    public void setGeoDamage(double geoDamage) {
        this.geoDamage = geoDamage;
    }

    public double getElectroDamage() {
        return electroDamage;
    }

    public void setElectroDamage(double electroDamage) {
        this.electroDamage = electroDamage;
    }

    public double getAnemoDamage() {
        return anemoDamage;
    }

    public void setAnemoDamage(double anemoDamage) {
        this.anemoDamage = anemoDamage;
    }

    public double getDendroDamage() {
        return dendroDamage;
    }

    public void setDendroDamage(double dendroDamage) {
        this.dendroDamage = dendroDamage;
    }

    public double getHealing() {
        return healing;
    }

    public void setHealing(double healing) {
        this.healing = healing;
    }

    public PossibleFinalForm copy(){
        PossibleFinalForm copy = new PossibleFinalFormDto();
        copy.setFlatHP(flatHP);
        copy.setFlatATK(flatATK);
        copy.setFlatDEF(flatDEF);
        copy.setPercentATK(percentATK);
        copy.setPercentDEF(percentDEF);
        copy.setPercentHP(percentHP);
        copy.setElementalMastery(elementalMastery);
        copy.setCritDamage(critDamage);
        copy.setCritRate(critRate);
        copy.setEmbryo(embryo);
        copy.setLevel(level);
        copy.setSuit(suit);
        copy.setEnergyRecharge(energyRecharge);
        copy.setHealing(healing);
        copy.setPhysicalDamage(physicalDamage);
        copy.setAnemoDamage(anemoDamage);
        copy.setHydroDamage(hydroDamage);
        copy.setPyroDamage(pyroDamage);
        copy.setGeoDamage(geoDamage);
        copy.setDendroDamage(dendroDamage);
        copy.setCryoDamage(cryoDamage);
        copy.setElectroDamage(electroDamage);
        return copy;
    }

    @Override
    public String toString() {
        return "PossibleFinalForm{" +
                "id='" + id + '\'' +
                ", embryo=" + embryo +
                ", suit=" + suit +
                ", percentATK=" + percentATK +
                ", percentHP=" + percentHP +
                ", percentDEF=" + percentDEF +
                ", flatHP=" + flatHP +
                ", flatATK=" + flatATK +
                ", flatDEF=" + flatDEF +
                ", elementalMastery=" + elementalMastery +
                ", energyRecharge=" + energyRecharge +
                ", critRate=" + critRate +
                ", critDamage=" + critDamage +
                ", physicalDamage=" + physicalDamage +
                ", hydroDamage=" + hydroDamage +
                ", pyroDamage=" + pyroDamage +
                ", cryoDamage=" + cryoDamage +
                ", geoDamage=" + geoDamage +
                ", electroDamage=" + electroDamage +
                ", anemoDamage=" + anemoDamage +
                ", dendroDamage=" + dendroDamage +
                ", healing=" + healing +
                '}';
    }
}
